#include <iostream>
// #include "instance.h"
#include "singleton.h"

using namespace std;


class SObject
{
    // friend class Singleton<SObject>;  //当前类需要使用单例模式
public:
    void print()
    {
        cout << "this = " << this << endl;
    }
};




int main(int argv, char**argc)
{
    printf("************  test hello zc!!!   **************\n");
    /* add test code! */
    // PrintSpoolerSingleton *ps1,*ps2;
	
	// //这里测试ps1 
	// try{
	// 	ps1 = PrintSpoolerSingleton::getInstance();
	// 	ps1->manageJobs();
	// } catch(char *e){
	// 	std::cout << e << std::endl;
	// }
	// std::cout << "-----我是分割线-----" << std::endl;
	
	// //这里测试ps2，测试是否已经创建单例实例，如果已经创建，则丢出异常 
	// try{
	// 	ps2 = PrintSpoolerSingleton::getInstance();
	// 	ps2->manageJobs();
	// } catch(char *e){
	// 	std::cout << e << std::endl;
	// }

	std::cout << "-----我是分割线-----" << std::endl;

	{
		SObject* s = Singleton<SObject>::GetInstance();
		SObject* s2 = Singleton<SObject>::GetInstance();
		s->print();
		s2->print();
	}

    return 0;
}